Field programmable gate arrays (FPGA) are integrated circuits that may be configured "in the field" by a user to form complex logic circuits. FPGAs have been widely used as application-specific integrated circuits (ASICs) due to their short design cycle and low cost. FPGAs are also used to build prototypes of high density, high speed, custom chips and ASIC devices in which a number of FPGAs may be used to emulate a hardware configuration.
A typical FPGA architecture consists of a two-dimensional array of universal logic modules that can be selectively connected using a programmable interconnect structure. The universal logic modules may include a number of functional devices such as diodes, transistors, logic gates, multiplexers and the like. The universal logic modules are interconnected by selectively programming the programmable interconnects to establish connection between the output of one logic module and the input of other logic modules. The programmable interconnects may be fuses, antifuses, or the like.
The complexity of the configurable logic modules and programmable interconnect system generally requires a relatively large amount of space on an integrated circuit. Such complexity may also cause delays and otherwise degrade performance of the FPGA.